package com.qf.bo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;

/**
 * 用户实体类
 *
 * @USER: Administrator
 * @DATE: 2025/8/30 上午8:36
 * @VERSION: 1.0.0
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class UserBO extends CommonColumn {
    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    @ToString.Exclude
    private String password;

    /**
     *
     */
    private String realName;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 电话号码
     */
    private String phone;

    /**
     * 是否启用（1-启用，0-禁用）
     */
    private Integer isEnabled;

    /**
     * 是否锁定（1-锁定，0-未锁定）
     */
    private Integer isLocked;

    /**
     * 账号过期时间（NULL表示永不过期）
     */
    private LocalDateTime accountExpireTime;

    /**
     * 凭证（密码）过期时间（NULL表示永不过期）
     */
    private LocalDateTime credentialsExpireTime;

    /**
     * 用户角色列表
     */
    @JsonIgnore
    private List<RoleBO> roles;

}
